クラスによって表される仕様からコンパイル可能かつ実行可能なアプリケーションを構築するための装置及び方法
专利摘要:
装置(D)は、クラスの高レベルの表現からコンパイル可能かつ実行可能なアプリケーション(AP)を構築するためのものであり、各クラスがデータを格納する、及び/又は少なくとも1つのパブリック関数を実施する、及び/又は少なくとも1つの他のクラスの少なくとも1つの選択されたパブリック関数を稼働させることができる。この装置(D)は、構築すべきアプリケーション(AP)を記述する仕様(AS)を表す仕様クラスの形式的な表現から選択されたプログラミング言語で「新しい」クラス表現を生成し、各クラスの形式的な表現が、クラス宣言、データ宣言、関数宣言、及び4つの基本型の中から選択された制限された一群の命令型から成る高レベルの記号言語で書かれ、4つの基本型がそれぞれ、選択されたクラスの選択され格納されたデータにアクセスするための命令、選択された演算子から、及び場合によってはいくつかの所与の入力パラメータから選択されたデータを算出するための命令、選択されたクラスデータが選択された条件を満たすかどうかをテストするための命令、及び場合によっては少なくとも1つの選択されたデータパラメータを含む任意のクラスの選択されたパブリック関数の稼働を引き起こすための命令から成り、(ii)仕様(AS)に対応するコンパイル可能かつ実行可能なアプリケーション(AP)を構築するために、これらの新しいクラス表現をアセンブルするように構成された生成手段(GM)を備える。 公开号:JP2011507064A 申请号:JP2010536455 申请日:2008-12-04 公开日:2011-03-03 发明作者:ラルベ,フィリップ 申请人:アルカテル−ルーセント; IPC主号:G06F9-44
专利说明:
[0001] 本発明は、クラスによって表される仕様から、オブジェクト指向プログラミングの範囲内でコンパイル可能かつ実行可能なアプリケーションを構築することに関する。] 背景技術 [0002] 「クラス」という用語は、ここではクラス名、及び格納されたデータの少なくとも1つの定義(又は表現)、及び/又は少なくとも1つの命令によって記述される少なくとも1つのパブリック関数によって表される表現を意味する。] [0003] さらに、「アプリケーション仕様」という表現は、ここでは所望のアプリケーションが満たすべき少なくとも1つの要件を定義する少なくとも1つのセンテンスを意味する。より正確には、アプリケーション要件は、アプリケーションが何を行うか、及びその機能的及び非機能的特徴が何であるかを記述する。これらの要件は、好ましくは自然言語で表されるが、任意の形式的又は非形式的な本文の表現の形で表すことができる。] 発明が解決しようとする課題 [0004] 多くの著者は(ソフトウェア)アプリケーションを書くための方法をいくつか記載しているが、これらの方法は、完全に手動式であり、又は例えばJava SDK、Eclipse、Visual Studioなどのソフトウェア開発環境によって決まる。そのため、これらの方法は、それらの仕様から実行可能なアプリケーションを自動的に構築することができない。] 課題を解決するための手段 [0005] 本発明の目的は上述した欠点を克服することであり、より正確には、(そのそれぞれがデータを格納する、及び/又は少なくとも1つのパブリック関数を実施する、及び/又は少なくとも1つの他のクラスの少なくとも1つの選択されたパブリック関数を稼働させることができる)クラスの高レベルの表現によって表される仕様から実行可能なアプリケーションを構築できるようにすることである。] [0006] このために、本発明は、クラスからコンパイル可能かつ実行可能なアプリケーションを構築するための方法であって、 ・クラス宣言、データ宣言、関数宣言、及び4つの基本型の中から選択された制限された一群の命令型から成る高レベルの記号言語で書かれたクラスの形式的な表現で、構築すべきアプリケーションを記述する仕様を表すステップであって、4つの基本型がそれぞれ、選択されたクラスの選択され格納されたデータにアクセスするための命令(A)、選択された演算子から、及び場合によってはいくつかの所与の入力パラメータから選択されたデータを算出するための命令(C)、選択されたクラスデータが選択された条件を満たすかどうかをテストするための命令(T)、及び場合によっては少なくとも1つの選択されたデータパラメータを含む任意のクラスの選択されたパブリック関数の稼働を引き起こすための命令(G)から成る、ステップ、次いで ・仕様クラスのこれらの高レベルの形式的な表現から選択されたプログラミング言語で「新しい」クラス表現を生成するステップ、及び ・仕様に対応するコンパイル可能かつ実行可能なアプリケーションを構築するために、これらの新しいクラス表現をアセンブルするステップ を備える方法を提供する。] [0007] 本発明による方法は、別々に考えられる、又は結合される追加の特徴を含むことができ、とりわけ、 ・クラスの各パブリック関数は、制限された一群の4つの基本的な命令型A、C、T、及びGの中から選択された型を有する少なくとも1つの命令のシーケンスによって記述することができ、 ・制限された一群の命令型は、命令A、C、T、及びGの4つの基本型を含む可能性があり、 ・変形体では、制限された一群の命令型は、命令A、C、T、及びGの4つより少ない基本型を含む可能性があり、 ・構築すべきアプリケーションを記述する仕様を受信するたびに、この仕様の自動的な分析を実行して、それを表すクラスを決定することができ、次いで、これらの決定された仕様クラスの形式的な表現を自動的に決定することができ、 ・前記新しいクラス表現が生成されるクラスの形式的な表現の少なくとも一部を格納することができ、受信した仕様を表しているクラスの形式的な表現を決定するために、これらの格納されたクラスの形式的な表現にアクセスすることができる。] [0008] また、本発明は、クラスの高レベルの表現からコンパイル可能かつ実行可能なアプリケーションを構築するための装置であって、 ・構築すべきアプリケーションを記述する仕様を表す仕様クラスの形式的な表現から選択されたプログラミング言語で「新しい」クラス表現を生成し、各クラスの形式的な表現が、クラス宣言、データ宣言、関数宣言、及び4つの基本型の中から選択された制限された一群の命令型から成る高レベルの記号言語で書かれ、4つの基本型がそれぞれ、選択されたクラスの選択され格納されたデータにアクセスするための命令(A)、選択された演算子から、及び場合によってはいくつかの所与の入力パラメータから選択されたデータを算出するための命令(C)、選択されたクラスデータが選択された条件を満たすかどうかをテストするための命令(T)、及び場合によっては少なくとも1つの選択されたデータパラメータを含む任意のクラスの選択されたパブリック関数の稼働を引き起こすための命令(G)から成り、 ・仕様に対応するコンパイル可能かつ実行可能なアプリケーションを構築するために、これらの新しいクラス表現をアセンブルする ように構成された生成手段を備える装置も提供する。] [0009] 本発明による装置は、別々に考えられる、又は結合される追加の特徴を含むことができ、とりわけ、 ・クラスの各パブリック関数は、制限された一群の4つの基本的な命令型A、C、T、及びGの中から選択された型を有する少なくとも1つの命令のシーケンスによって記述することができ、 ・構築すべきアプリケーションを記述する仕様を受信するたびに、この仕様を分析して、それを表すクラスを決定するように構成された分析手段を備えることができ、 ・新しいクラス表現が生成されるクラスの形式的な表現の少なくとも一部を格納するための格納手段を備えることができ、 ・分析手段は、受信された仕様を表すクラスの格納された形式的な表現を抽出するために、格納手段にアクセスするように構成することができる。] [0010] 本発明の他の特徴及び利点は、以下の詳細な明細書及び添付の図面を検討すれば明らかになり、唯一の図面は本発明による装置の実施形態の例を図示する。] [0011] 添付の図面は本発明を完成させるだけではなく、必要に応じて、その定義への貢献にも役立ち得る。] 図面の簡単な説明 [0012] 図1は本発明による装置例の図である。] 図1 実施例 [0013] 本発明は、クラスによって表される仕様のテキストから実行可能なアプリケーションを構築するための装置及び関連の方法を提供することを目的とする。] [0014] 本発明は、クラスの形式的な表現でアプリケーションの要件を表すテキストで書かれた仕様によって記述される任意のタイプのアプリケーションに対処する。] [0015] 「クラス」という用語は、ここでは1つのクラス名、及び格納されたデータの少なくとも1つの定義(又は表現)、及び/又は少なくとも1つの命令のシーケンスによって記述される少なくとも1つのパブリック関数によって定義される(又は表される)表現を意味することに留意されたい。] [0016] 唯一の図に図示されるように、本発明による装置Dは少なくとも生成モジュール(又はコードジェネレータ)GMを備える。] [0017] この生成モジュール(又はコードジェネレータ)GMは、実行可能なアプリケーションAPを仕様ASから構築しなければならないとき、そのたびに介入する。] [0018] 「アプリケーション仕様」という表現は、ここでは所望のアプリケーションが満たすべき少なくとも1つの要件を定義する少なくとも1つのセンテンスを意味することに留意されたい。より正確には、アプリケーション要件は、アプリケーションAPが何を行うか、及びその機能的及び非機能的特徴が何であるかを記述する。これらの要件は好ましくは自然言語で表されるが、任意の形式的又は非形式的な本文の表現の形で表すことができる。] [0019] 本発明によれば、すべてのアプリケーション仕様ASが、ステートメントの選択された型から成る高レベルの記号言語で書かれたクラスCiの形式的な表現で表される。] [0020] これらの選択されたステートメント型は3つの宣言型及び制限された一群の命令型を備える。] [0021] 3つの宣言型はクラス宣言、データ宣言、及び関数宣言である。] [0022] 制限された一群のそれぞれの命令型は、それぞれ以下から成る4つの基本型の中から選択される。 ・選択されたクラスの選択され格納されたデータにアクセスするための命令。この型は、アクセス関数から成る命令を備えるため、A(「アクセス」)と呼ぶことができる。 ・選択された演算子、及び場合によってはいくつかの所与の入力パラメータから選択されたデータを算出するための命令。この型は、計算関数から成る命令を備えるため、C(「計算」(又は「算出」))と呼ぶことができる。 ・選択されたクラスデータが選択された条件を満たすかどうかをテストするための命令。この型はテスト関数から成る命令を備えるため、T(「テスト」)と呼ぶことができる。 ・場合によっては少なくとも1つの選択されたデータパラメータを含む(又は言い換えれば任意のクラスのイベントを生成するための)任意のクラスの選択されたパブリック関数(又はメソッド)の稼働を引き起こすための命令。この型は、イベント生成から成る命令を備えるため、G(「生成」)と呼ぶことができ、このイベントは、オブジェクト指向の世界では、パラメータ付きの関数の呼出に翻訳される。] [0023] 例えば、クラスCiがその名前(「class_name」)で指定され、クラスデータがその名前(「data_name」)で指定される場合、 ・アクセス関数は、A(class_name,data_name)、又はドット付き表記が使用される場合、A(class_name.data_name)と書くことができる。 ・計算関数は、C(result,operand1,operator,operand2)と書くことができ、この場合、operand1及びoperand2は、クラスデータ又は関数呼出の結果である。 ・テスト関数は、T(condition,action_if_true,action_if_false)と書くことができ、この場合、「action_if_true」は、関連の条件が真である(又は満たされる)場合、実行されるべきアクションを指定し、「action_if_false」は、関連の条件が偽である(又は満たされない)場合、実行されるべきアクションを指定し、「条件」は、クラスデータに対する論理条件又は関数呼出の結果を表し、 ・生成関数は、G(class_name,function_name,parameter)、又はドット付き表記が使用される場合、G(class_name,function_name(parameters))と書くことができ、この場合、「function_name」は、クラス「class_name」のパブリック関数(又はメソッド)を指定する。] [0024] クラスCiは少なくとも3つの異なるカテゴリに属し得る。第1のカテゴリは少なくとも1つのデータを格納するクラスを備える。第2のカテゴリは少なくとも1つの特定の命令のシーケンスによって定義されるクラスを備える。第3のカテゴリは少なくとも1つのデータを格納し、少なくとも1つの特定の命令のシーケンスによって定義されるクラスを備える。] [0025] 本発明によれば、「特定の命令」は、述部として表され、4つの上述した基本的な命令型(A、C、T、G)のうちの1つを有する命令である。] [0026] アプリケーション仕様ASを表す(又は構成する)クラスCiは、装置のユーザによってこのアプリケーション仕様ASのテキストから決定することができる。この場合、ユーザは、3つの上述した宣言型(クラス、データ、関数)から決定された各クラスCiの形式的な表現を構築し、4つの上述した基本的な命令型の中から選択された制限された一群の命令型に属する命令を使用することによって各クラスの各関数を表す。例えば、装置Dは、4つの基本的なもの(A、C、T、G)の中から少なくとも1つの命令型を選択するように、ユーザに提案することができる。] [0027] 変形体では、装置Dは、1組のクラスCi(i=1からN)の形式的な表現を格納するための格納手段SMを備えることができる。この場合、ユーザは、格納手段SMにおいて、ユーザに従ってアプリケーション仕様ASを構成する(又は表す)クラスCiの形式的な表現を決定(又は選択)することができる。] [0028] クラスCiの形式的な表現を格納することができ、当業者から知られている任意のタイプの格納手段SMを使用することができ、とりわけ、データベース、フラッシュメモリ、CD、USBキー、ROM又はRAM、フラットファイルシステム、及び任意の他の種類のリポジトリとすることができる。] [0029] 別の変形体において、装置Dは、アプリケーション仕様ASが受信されるたびに、それを構成する(又は表す)クラスCiを決定するために、このアプリケーション仕様ASのテキストを分析するための分析モジュールAMを備えることができる。いったん分析モジュールAMがアプリケーション仕様ASを構成するクラスCiを決定すると、ユーザは、3つの上述した宣言型(クラス、データ、関数)から決定された各クラスCiの形式的な表現を構築し、4つの上述した基本的な命令型の中から選択された制限された一群の命令型に属する命令を使用することによって各クラスの各関数を表す。例えば、装置Dは、4つのもの(A、C、T、G)の中から少なくとも1つの命令型を選択するように、ユーザに提案することができる。] [0030] さらに別の変形体で、装置Dは、上述した格納手段SM、及びそれを構成するクラスCiを決定するために、受信されたアプリケーション仕様ASのテキストを分析するためだけではなく、これらの決定されたクラスCiの形式的な表現を抽出するために、格納手段SMにアクセスするための分析モジュールAMを備えることができる。この変形体において、分析モジュールAMは、2つのサブモジュールに分割することができ、第1のものはテキスト分析を実行するためのものであり、第2のものは仕様テキストで第1のサブモジュールによって決定されたクラスの形式的な表現を格納手段SMから抽出するためのものである。さらに、この変形体では、分析モジュールAMは、セマンティック分析によってクラスをより容易に抽出するために、外部オントロジ(external ontology)又は外部辞書又は用語辞典に結合することができる。] [0031] アプリケーション仕様ASを構成するクラスCiの形式的な表現が、ユーザによっていったん定義される、又は分析モジュールAMによって格納手段SMから抽出されると、生成モジュールGMは、「新しい」クラス表現、即ちソースコードで表したクラスを、これらの形式的な表現から選択されたプログラミング言語で生成し、次いで受信されたアプリケーション仕様ASに対応する所望のコンパイル可能かつ実行可能なアプリケーションAPを構築するために、これらのソースコードクラスをアセンブルするように構成される。] [0032] 例えば、選択されたプログラミング言語はJava、C++又はC#とすることができる。] [0033] 本発明によるプログラミングプロセスは、「低減命令セットプログラミング(reduced instruction set programming)」(RISP)と呼ぶことができ、生物学的蛋白質の概念と比較することができる。蛋白質は、ポリペプチドを共に定義する選択された数の所与のペプチドで構成され、そのそれぞれは、4つのアミノ酸(アデニン(A)、グアニン(G)、シトシン(C)、及びチミン(T))の選択された整列された配列で構成されることに留意されたい。例えば、ポリペプチド(又は蛋白質)は、以下の配列(ACTG−AACG−ACCG−ACTG−・・・)によって部分的に定義することができる。さらに、蛋白質は、分子又はイオン交換を介してその間をつなげる。そのため、蛋白の分野と類似して、本発明によるクラスCiはペプチドに対応し、クラスデータは分子に対応し、生成されたイベントは分子の交換(関数がパラメータで呼び出されるとき)又はイオン交換(関数がパラメータ無しで呼ばれるとき)に対応する。従って、実行可能なアプリケーションAP(生成モジュールGMによって生成された)は、X個の特定の命令のグループの整列された配列の一種であり、それらの型は、選択された制限された一群のM個の基本的な命令型に選択される。Mは少なくとも1に等しい整数である。例えばM=4(生物学的なペプチドの場合と同様)である。] [0034] そのため、アプリケーションは、完全でコンパイル可能なアプリケーションAPを構築するために、生成モジュール(又はコードジェネレータGM)によって入力とみなされる1組の命令である。] [0035] ここで、本発明による装置Dによって実行されるプログラミングプロセスを示すために、簡単な、部分的な、非制限的な例について説明する。] [0036] この非制限的な例は、現金自動預け払い機(又はATM)の使用に関連する。現金自動預け払い機(ATM)は、金融機関(銀行など)の顧客に、事務員又は銀行の出納係の必要無しに、公のスペースにおいて、金融取引へのアクセスを提供するコンピュータ化された通信装置と定義することができることに留意されたい。ほとんどのモデムATMで、顧客は、一意のカード番号及び満了日など何らかのセキュリティ情報を含む、磁気ストライプを含むプラスチックカード、又はチップを含むプラスチックスマートカードを挿入することによって識別される。セキュリティは、顧客が個人識別番号(PIN)を入力することによって提供される。ATMを使用するとき、顧客は、その銀行口座にアクセスして現金を引き出し(又はクレジットカードキャッシュアドバンス)、その口座残高をチェックすることができる。] [0037] 以下、アプリケーション仕様ASの目的は、顧客が引き出しを行えるようにすることであると仮定する。こうしたアプリケーション仕様ASは、例えば、以下のセンテンスによって定義することができる。 ・顧客がカードをATMに入れる。 ・ATMは、顧客に暗号(PINコード)を入力するよう要求する。 ・顧客がコードを入力する。 ・ATM(カードリーダー)は、コードをチェックする。 ・3回の試行後、コードが不正の場合、ユーザにカードが戻される。 ・コードが適切である場合、ATMは、顧客に引き出し金額を入力するように要求する。 ・顧客は、必要な金額を入力する。 ・ATMは、引き出し金額が許可されるかどうか、カードをチェックする。 ・ATMは、銀行残高によって引き出しが可能かどうか、銀行インターフェイスを介して顧客の口座に尋ねる。 ・上記の条件がOKである場合、分配スロットを介して紙幣を配ることができる。] [0038] この簡単な仕様テキストの分析によって、以下のクラスCi、カード、カードリーダー、銀行インターフェイス、ATM、スロットを決定することができる。これらのクラスCiの間のイベントの交換によって、アプリケーションAPを実施することができる。決定されたクラスCiの「ACTG表記」における形式的な表現の一例は、以下の通りとすることができる。 card { data: secret_code=1234; } card_reader { data: code_input; functions: introduce_card () { G(dialogue, "カード読み取り中です"); G(card_reader, check_code) ; } check_code () { G(dialogue, "PINコードを入力してください"); C(code_input, input()); T(code_input==A(card, secret_code), G(ATM, ask_amount), code_KO); } code _KO() { G(dialogue, "不正なコード"); G(card_reader, check_code); } return _card() { G(dialogue, "カードを取り出し、お金をお受け取りください"); G(slot, distribute, A(ATM, withdrawal_amount)); } } slot { data: nb_of_banknotes; functions: distribute(parameter) { C(nb_of_banknotes=parameter/A(banknote, value)); G(dialoque, "あなたのお金です(nbのbanknotes = "+nb_of_banknotes+")"); } }] [0039] ACTG表記から、コードジェネレータGMは、クラス「カードリーダー」について、Javaにおける以下の新しいクラスを自動的に生成することができる。 class card_reader { //data: int code_input; // instances (generated) dialogue thedialogue; card thecard; ATMtheATM; slot theslot; //constructor (generated) public card _reader() { thedialogue = new dialogue(); thecard = new card(); theATM = new ATM(); theslot = new slot(); } //methods: public void introduce_card() { thedialogue.display("カード読み取り中です"); this.check_code(); } public void check _code() { thedialogue.display("PINコードを入力してください"); code_input = input(); if(code -input==thecard.secret_code) theATM.ask_amount(); else this.code_KO(); } public void code_KO() { thedialogue.display("不正なコード"); this.check_code(); } public void return _card() { thedialogue.display("カードを取り出し、お金をお受け取りください"); theslot.distribute(theATM.withdrawal_amount); } }] [0040] 実際には、コードジェネレータGMは、仕様ASを表すすべてのクラスCi(ここでは、これらのクラスは、カード、カードリーダー、銀行インターフェイス、ATM、スロットである)の新しいJavaクラスを自動的に生成する。] [0041] 装置D、及びより正確には、その生成モジュールGM及び場合によってはその格納手段SM、及び/又は分析モジュールAMは、好ましくはソフトウェアモジュールである。しかし、これらはそれぞれ、電子回路又はハードウェアモジュール、又はハードウェアモジュール及びソフトウェアモジュールの組み合わせで構成されてもよい。] [0042] また、本発明は、仕様ASを構成するクラスCiから実行可能なアプリケーションAPを構築するための方法の観点で考えることもできる。] [0043] こうした方法は、唯一の図を参照して上述したものなど、装置Dによって実施することができる。従って、その主な特徴のみ以下で言及する。] [0044] 本発明によるこの方法は、 ・3つの宣言型、クラス宣言、データ宣言、関数宣言、及び4つの基本型の中から選択された制限された一群の命令型から成る高レベルの記号言語で書かれたクラスCiの形式的な表現で、構築すべきアプリケーションAPを記述する仕様ASを表すステップであって、4つの基本型がそれぞれ、選択されたクラスの選択され格納されたデータにアクセスするための命令(A)、選択された演算子から、及び場合によってはいくつかの所与の入力パラメータから選択されたデータを算出するための命令(C)、選択されたクラスデータが選択された条件を満たすかどうかをテストするための命令(T)、及び場合によっては少なくとも1つの選択されたデータパラメータを含む任意のクラスの選択されたパブリック関数の稼働を引き起こすための命令(G)から成る、ステップ、次いで ・仕様クラスCiのこれらの形式的な表現から選択されたプログラミング言語で「新しい」クラス表現を生成するステップ、及び ・この仕様ASに対応するコンパイル可能かつ実行可能なアプリケーションAPを構築するために、これらの新しいクラス表現をアセンブルするステップ から成る。] [0045] 仕様ASのテキストの分析が(分析モジュールAMによって)自動的に行われ、仕様クラスの形式的な表現が格納手段SMから(分析モジュールAMによって)自動的に抽出されるとき、本発明は、その仕様ASのテキストから直接、コンパイル可能かつ実行可能なアプリケーションAPを生成するための手段と考えることができる。] [0046] 本発明は、遺伝的アルゴリズム、ニューラルネットワーク、及びpopulationist ant−programmingなど、当分野で知られている生物学的な手法とは強く異なる新しい手法を提供する。] [0047] 遺伝的アルゴリズム(又は進化的アルゴリズム)は、メタ発見的アルゴリズムのファミリに属し、その目的は、妥当な時間以内に問題を解決する正確な方法が知られていないとき、最適化問題に対して近い解答を許容可能な時間以内に取得することであるに留意されたい。遺伝子及び突然変異の概念を使用することによって、遺伝的アルゴリズムは、Ch.Darwinによって19世紀中に開発された自然選択及び進化の概念を使用し、これらの概念を所与の問題に対する潜在的な解答の集団に適用する。そのため、連続的な「ジャンプ」によって許容可能な解答により近くなる。] [0048] 本発明は、遺伝子、突然変異、自然選択、その他の進化の概念を使用するのではなく、その目的は、最適化することではなく、オブジェクト指向のプログラミングの範囲内の実行可能なアプリケーションの生成を容易にすることである。] [0049] 人工ニューラルネットワークとは、設計が真の神経細胞(ヒト又はヒト以外)の機能からのインスピレーションを非常に概略的に得た計算モデルである。ニューラルネットワークは、一般に、統計タイプの学習方法によって最適化され、従って、これらはまず、統計的なアプリケーションのファミリに属し、これを、柔軟性があり、部分的に構築されている広範な機能空間を生成できるようにする1組のパラダイムで豊かにし、第2に、人工知能的方法のファミリに属し、これを、形式的な論理的推論よりも知覚に基づいて決断を下すことができるようにして豊かにしている。] [0050] 本発明は神経細胞の概念も統計の概念も使用せず、人工知能的方法でもなく、その目的は決定を発砲するのではなく、オブジェクト指向プログラミングの範囲内で実行可能なプログラムの生成を容易にすることである。] [0051] populationist ant−programmingは、蟻の狩猟挙動からインスピレーションを得た組み合わせ最適化問題の発見的方法である。これによって、組み合わせ最適化問題に対する多段の解答のための反復モンテカルロ法の使用の基礎を成す原則へのより深い洞察力が可能になる。こうした洞察力は、アルゴリズムの設計者に、新しいカテゴリ、表現的用語、及び当面の問題の特色を効果的に扱うためのツールを提供するためのものである。これは、元の組み合わせ問題が低減される多段決定問題の最適なポリシーを検索する。] [0052] 本発明は、蟻、コロニー、その他の最適化の概念を使用するのではなく、その目的は、組み合わせ最適化問題の発見ではなく、オブジェクト指向のプログラミングの範囲内で実行可能なアプリケーションの生成を容易にすることである。] [0053] 本発明は単に例にすぎず、上記の方法及び装置の実施形態に限定されるものではなく、以下の特許請求の範囲内で当業者が考え得るすべての代替実施形態を含む。]
权利要求:
請求項1 各クラスがデータを格納する、及び/又は少なくとも1つのパブリック関数を実施する、及び/又は少なくとも1つの他のクラスの少なくとも1つの選択されたパブリック関数を稼働させることができる、クラス(Ci)の高レベルの表現からコンパイル可能かつ実行可能なアプリケーション(AP)を構築するための方法であって、(i)クラス宣言、データ宣言、関数宣言、及び4つの基本型の中から選択された制限された一群の命令型から成る高レベルの記号言語で書かれたクラス(Ci)の形式的な表現で、構築すべきアプリケーション(AP)を記述する仕様(AS)を表すステップであって、4つの基本型がそれぞれ、選択されたクラスの選択され格納されたデータにアクセスするための命令、選択された演算子から、及び場合によってはいくつかの所与の入力パラメータから選択されたデータを算出するための命令、選択されたデータが選択された条件を満たすかどうかをテストするための命令、及び場合によっては少なくとも1つの選択されたデータパラメータを含む任意のクラスの選択されたパブリック関数の稼働を引き起こすための命令から成る、ステップ、次いで(ii)前記仕様クラス(Ci)の前記形式的な表現から選択されたプログラミング言語で「新しい」クラス表現を生成するステップ、及び(iii)前記仕様(AS)に対応するコンパイル可能かつ実行可能なアプリケーション(AP)を構築するために、前記新しいクラス表現をアセンブルするステップから成ることを特徴とする方法。 請求項2 請求項1に記載の方法であって、クラスの各パブリック関数が前記制限された一群の4つの基本的な命令型の中から選択された型を有する少なくとも1つの命令のシーケンスによって記述されることを特徴とする方法。 請求項3 請求項1乃至2のいずれか1項に記載の方法であって、前記制限された一群の命令型が前記命令の4つの基本型を含むことを特徴とする方法。 請求項4 請求項1乃至2のいずれか1項に記載の方法であって、前記制限された一群の命令型が前記4つより少ない命令の基本型を含むことを特徴とする方法。 請求項5 請求項1乃至4のいずれか1項に記載の方法であって、構築すべきアプリケーション(AP)を記述する仕様(AS)を受信するたびに、(i)前記仕様(AS)の自動的な分析を実行して、それを表す前記クラスを決定し、次いで(ii)これらの決定された仕様クラス(Ci)の前記形式的な表現を自動的に決定することを特徴とする方法。 請求項6 請求項1乃至5のいずれか1項に記載の方法であって、前記新しいクラス表現が生成される前記クラスの形式的な表現の少なくとも一部を格納し、前記受信された仕様(AS)を表している前記クラスの前記形式的な表現を決定するために、これらの格納されたクラスの形式的な表現にアクセスすることを特徴とする方法。 請求項7 各クラスがデータを格納する、及び/又は少なくとも1つのパブリック関数を実施する、及び/又は少なくとも1つの他のクラスの少なくとも1つの選択されたパブリック関数を稼働させることができる、クラス(Ci)の高レベルの表現からコンパイル可能かつ実行可能なアプリケーション(AP)を構築するための装置(D)であって、(i)構築すべきアプリケーション(AP)を記述する仕様(AS)を表す仕様クラス(Ci)の形式的な表現から選択されたプログラミング言語で「新しい」クラス表現を生成し、各クラスの形式的な表現が、クラス宣言、データ宣言、関数宣言、及び4つの基本型の中から選択された制限された一群の命令型から成る高レベルの記号言語で書かれ、4つの基本型がそれぞれ、選択されたクラスの選択され格納されたデータにアクセスするための命令、選択された演算子から、及び場合によってはいくつかの所与の入力パラメータから選択されたデータを算出するための命令、選択されたクラスデータが選択された条件を満たすかどうかをテストするための命令、及び場合によっては少なくとも1つの選択されたデータパラメータを含む任意のクラスの選択されたパブリック関数の稼働を引き起こすための命令から成り、及び(ii)前記仕様(AS)に対応するコンパイル可能かつ実行可能なアプリケーション(AP)を構築するために、前記新しいクラス表現をアセンブルするように構成された生成手段(GM)を備えることを特徴とする装置。 請求項8 請求項7に記載の装置であって、クラスの各パブリック関数が前記制限された一群の4つの基本的な命令型の中から選択された型を有する少なくとも1つの命令のシーケンスによって記述されることを特徴とする装置。 請求項9 請求項7乃至8のいずれか1項に記載の装置であって、前記制限された一群の命令型が前記4つの基本型の命令を含むことを特徴とする装置。 請求項10 請求項7乃至8のいずれか1項に記載の装置であって、前記制限された一群の命令型が前記4つより少ない命令の基本型を含むことを特徴とする装置。 請求項11 請求項7乃至10のいずれか1項に記載の装置であって、構築すべきアプリケーションを記述する仕様(AS)を受信するたびに、前記仕様(AS)を分析して、それを表すクラスを決定するように構成された分析手段(AM)を備える装置。 請求項12 請求項7乃至11のいずれか1項に記載の装置であって、前記新しいクラス表現が生成される前記クラスの形式的な表現の少なくとも一部を格納するための格納手段(SM)を備えることを特徴とする装置。 請求項13 請求項11及び12の組み合わせに記載の装置であって、前記受信された仕様(AS)を表している前記クラスの前記格納された形式的な表現を抽出するために、前記分析手段(AM)が前記格納手段(SM)にアクセスするように構成されたことを特徴とする装置。
类似技术:
公开号 | 公开日 | 专利标题 Kalra et al.2018|ZEUS: Analyzing Safety of Smart Contracts. Glaser et al.2015|Beyond cryptocurrencies-a taxonomy of decentralized consensus systems Vijayakumar et al.2017|Automated risk identification using NLP in cloud based development environments Clark et al.2015|Entity-centric coreference resolution with model stacking Chitra et al.2013|Data mining techniques and its applications in banking sector Anderies et al.2016|Institutions and the performance of coupled infrastructure systems Chung et al.2012|Non-functional requirements in software engineering Kovalerchuk et al.2006|Data mining in finance: advances in relational and hybrid methods Grau et al.2008|Modular reuse of ontologies: Theory and practice Czajka et al.2018|Hammer for Coq: Automation for dependent type theory Tiwari et al.2015|A systematic literature review of use case specifications research US5822741A|1998-10-13|Neural network/conceptual clustering fraud detection architecture Kotsiantis et al.2006|Forecasting fraudulent financial statements using data mining Sindre et al.2003|A reuse-based approach to determining security requirements Ścibior et al.2015|Practical probabilistic programming with monads Doumpos et al.2011|A multicriteria outranking modeling approach for credit rating Arbabi et al.1994|Algorithms for Arabic name transliteration Baresi et al.2002|Tutorial introduction to graph transformation: A software engineering perspective US5257363A|1993-10-26|Computer-aided generation of programs modelling complex systems using colored petri nets US8577823B1|2013-11-05|Taxonomy system for enterprise data management and analysis Pascarella et al.2017|Classifying code comments in Java open-source software systems Anderson et al.2017|Split-sample strategies for avoiding false discoveries Wong et al.2012|Artificial immune systems for the detection of credit card fraud: an architecture, prototype and preliminary results Ernst et al.2015|KIV: overview and VerifyThis competition Mehler2008|Structural similarities of complex networks: A computational model by example of wiki graphs
同族专利:
公开号 | 公开日 WO2009071622A1|2009-06-11| US20090178023A1|2009-07-09| KR20100099719A|2010-09-13| CN101482818A|2009-07-15| EP2071451A1|2009-06-17|
引用文献:
公开号 | 申请日 | 公开日 | 申请人 | 专利标题
法律状态:
2011-10-05| A621| Written request for application examination|Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20111004 | 2011-11-17| A762| Written abandonment of application|Free format text: JAPANESE INTERMEDIATE CODE: A762 Effective date: 20111116 |
优先权:
[返回顶部]
申请号 | 申请日 | 专利标题 相关专利
Sulfonates, polymers, resist compositions and patterning process
Washing machine
Washing machine
Device for fixture finishing and tension adjusting of membrane
Structure for Equipping Band in a Plane Cathode Ray Tube
Process for preparation of 7 alpha-carboxyl 9, 11-epoxy steroids and intermediates useful therein an
国家/地区
|